home *** CD-ROM | disk | FTP | other *** search
/ Chip 1996 November / Chip 11-96.iso / workshop / howto / ppp < prev    next >
Text File  |  1996-05-25  |  40KB  |  1,250 lines

  1.   Linux PPP HOWTO
  2.   Al Longyear, longyear@netcom.com
  3.   November 21, 1994.
  4.  
  5.   This document contains a list the most Frequently Asked Questions
  6.   (FAQ) about PPP for Linux (and their answers).  It is really not a
  7.   HOWTO, but is in `classical' Question / Answer form.  This is but one
  8.   of the Linux HOWTO/FAQ documents.  You can get the HOWTO's from sun-
  9.   site.unc.edu:/pub/Linux/doc/HOWTO (this is the ``official'' place) or
  10.   via WWW from the Linux Documentation home page
  11.   (http://sunsite.unc.edu/mdw/linux.hmtl).  You cannot rely on the
  12.   HOWTO's being posted to comp.os.linux.announce, as some newsfeeds have
  13.   complained about their size.
  14.  
  15.   1.  Preface
  16.  
  17.  
  18.   Please send any corrections to longyear@netcom.com.
  19.  
  20.   Throughout this document, I have used the word ``remote'' to mean
  21.   ``the system at the other end of the modem link''. It is also called
  22.   ``peer'' in the PPP documentation.  Another name for this is called
  23.   the ``gateway'' when the term is use for routing.  Its IP address will
  24.   show as the ``P-t-P'' address if you use ifconfig.
  25.  
  26.   Microsoft is a registered trademark of Microsoft Corporation. Morning
  27.   Star is a registered trademark of Morning Star Technologies
  28.   Incorporated. All other products mentioned are trademarks of their
  29.   respective companies.
  30.  
  31.  
  32.  
  33.   2.  Questions and Answers
  34.  
  35.  
  36.  
  37.  
  38.  
  39.   2.1.  Q: What is PPP?
  40.  
  41.  
  42.   A: PPP, or Point-to-Point Protocol, is a recognized `official'
  43.   internet protocol.  It is a protocol used to exchange IP frames (and
  44.   others) over a serial link.  The current RFC for PPP is 1661.  There
  45.   are many related ones.
  46.  
  47.   Contrary to what some people think, it does not mean "Peer to Peer
  48.   Processing"; although you may do peer-peer communications using TCP/IP
  49.   over a PPP link.
  50.  
  51.  
  52.  
  53.  
  54.   2.2.  Q: My university (company) does not support PPP. Can I use PPP?
  55.  
  56.  
  57.   A: In general, no.  A `classical' PPP implementation requires that you
  58.   make changes to the routes and network devices supported by the
  59.   operating system.  This may mean that you will have to rebuild the
  60.   kernel for the remote computer.
  61.  
  62.   This is not a job for a general user.  If you can convince your
  63.   administration people that PPP is a `good thing' then you stand a
  64.   chance of getting it implemented.  If you can't, then you probably
  65.   can't use PPP.
  66.  
  67.   However, if you are using a system which is supported by the people
  68.   who are marketing the "TIA" (The Internet Adapter) package, then there
  69.   is hope.  I do not have much information on this package, however,
  70.   from what I have found, they plan to support PPP in "the next
  71.   version".  (My information may be old.  Contact them directly.
  72.   Information on TIA is available at ftp.marketplace.com in the /pub/tia
  73.   directory.)
  74.  
  75.   A Linux port is on their list.
  76.  
  77.   If your system is not supported by TIA and you can't convince the
  78.   admin group to support PPP then you should use the `term' package.
  79.   Some service providers will object to you running `term'. They have
  80.   many different reasons, however the most common is `security
  81.   concerns'.
  82.  
  83.  
  84.  
  85.  
  86.   2.3.  Q: Where is PPP?
  87.  
  88.  
  89.   A: It is in two parts.  The first part is in the kernel.  In the
  90.   kernels from 1.1.13, the driver is part of the network system drivers.
  91.  
  92.   Do not replace the driver in the kernel with a version from the pppd
  93.   package!!!
  94.  
  95.   The second part is the `daemon' process, pppd. This is a required
  96.   process.  The source to it is in the file ppp-2.1.2b.tar.gz located on
  97.   sunsite.unc.edu in the /pub/Linux/system/Networking/serial directory.
  98.  
  99.   It should also be somewhere on ftp.funet.fi.
  100.  
  101.   For kernels before 1.1.13, the necessary driver is included in the
  102.   daemon code.
  103.  
  104.  
  105.  
  106.  
  107.   2.4.  Q: I just obtained PPP. What do I do with it?
  108.  
  109.  
  110.   A: Read The Fine Material available.
  111.  
  112.   Start by reading the README file and then the README.linux file.  The
  113.   documentation sources are listed below.
  114.  
  115.  
  116.  
  117.  
  118.   2.5.  (Where's the documentation? Is there a HOWTO?, etc.)  Q: Where
  119.   are additional sources of information for PPP?
  120.  
  121.  
  122.   A: There are several sources of information for the PPP protocol as
  123.   implemented under Linux.
  124.  
  125.  
  126.   o  The README file in the source package.
  127.  
  128.   o  The README.linux file in the source package.
  129.  
  130.   o  The Net-2-HOWTO document.
  131.  
  132.  
  133.   o  The Network Administration Guide.
  134.  
  135.   o  The pppd man page.
  136.  
  137.   o  The ppp FAQ document. (This is not it, by the way.)
  138.  
  139.   The HOWTO file is stored in the usual place for the Linux HOWTOs.
  140.   That is currently on sunsite.unc.edu in the directory
  141.   /pub/Linux/docs/HOWTO.
  142.  
  143.   The Network Administration Guide is available in the docs/linux-doc-
  144.   project/nag directory on sunsite.  It is published by O'Riellly and
  145.   Associates.  So, if you want a really professional document, then buy
  146.   a copy from your local bookstore.
  147.  
  148.   The `man' pages are included in the source package.  You will probably
  149.   have to move them to the normal man directory, /usr/man/man8 before
  150.   the man command may find them.  Alternately, you may use nroff and
  151.   more to view them directly.
  152.  
  153.   The PPP faq document describes the PPP protocol itself and the various
  154.   implementations.  You will find the FAQ for the usenet news group,
  155.   comp.protocols.ppp, archived on rtfm.mit.edu in the /usenet directory.
  156.   It is in eight parts at the present time.
  157.  
  158.  
  159.  
  160.  
  161.   2.6.  Q: Where should I post questions about PPP?
  162.  
  163.  
  164.   A: I would prefer that you post them to the comp.protocols.ppp group.
  165.   That is its purpose. I recognize that most people tend to post things
  166.   to the comp.os.linux.*  groups first.  You will usually get a response
  167.   even if you use these wrong groups.  However, it is better that you do
  168.   ask in the proper group.
  169.  
  170.   Very few questions are related directly to the Linux port.  Most of
  171.   the questions are general use of the ppp package and are exactly
  172.   applicable to the remainder of the pppd users.
  173.  
  174.   Please, if you must use usenet for PPP questions, use
  175.   comp.protocols.ppp.
  176.  
  177.  
  178.  
  179.  
  180.   2.7.  HELP!!!  Q: The PPP software doesn't work. It terminates after
  181.   the call.
  182.  
  183.  
  184.   A: This is one of the most sickening questions. I realize that this is
  185.   a plea for help.  However, it is practically useless to post this
  186.   message with no other information.  I, and most others, will only
  187.   ignore it.
  188.  
  189.   What is needed is the output of the system log (syslog) when you run
  190.   the pppd program with the option `debug'.  In addition, if you are
  191.   using chat then please use the `-v' option to run the sequence with
  192.   verbose output.
  193.  
  194.   Please include the output from the kernel's startup.  This shows the
  195.   various kernel hardware information such as your UART type, PPP
  196.   version, etc.
  197.  
  198.  
  199.   Please include all information that you can relating to the problem.
  200.   However your system configuration, disk drive configuration, terminal
  201.   type, mouse location and button status, etc. are irrelevant.  What is
  202.   important is the system to which your are trying to contact, the ppp
  203.   (or terminal server) that they are using, the modem types and speed
  204.   that you are using, etc.
  205.  
  206.   Take care and go through the output.  Remove the references to the
  207.   telephone number, your account name, and the password.  They are not
  208.   important to analyzing the problem and would pose a security risk to
  209.   you if you published them to usenet.  Also discard the lines which
  210.   neither come from the kernel nor pppd.
  211.  
  212.   Do NOT run the pppd program with the option `kdebug 7' and post that!
  213.  
  214.   If the problem warrants examining the data stream, then you will be
  215.   contacted by email and asked to mail the trace.  Usenet already costs
  216.   too much for too many people.
  217.  
  218.   Information is written to various levels.  The debug information is
  219.   written to the debug level.  The informational messages are written to
  220.   the info level.  The errors are written to the error level.  Please
  221.   include all levels the the ``local2'' group which come from the pppd
  222.   process.
  223.  
  224.   In addition, please do not delete the timestamp information.  It is
  225.   important.
  226.  
  227.  
  228.  
  229.  
  230.   2.8.  would like one for HP-UX, or AIX, or ... (you fill in the blank)
  231.   ?  Q: Do you know of a implementation for PPP other than Linux? I
  232.  
  233.  
  234.   A: Check the PPP FAQ document mentioned above.
  235.  
  236.   AIX is due to be supported in the 2.2 version of the pppd process.
  237.   HP-UX is, to my knowledge, only supported by the Morning Star
  238.   commerical package.
  239.  
  240.   If you don't find one listed then post to the comp.protocols.ppp group
  241.   and not the Linux group.
  242.  
  243.   (Please don't mail me asking for "Do you know of a PPP package for
  244.   ..."?  These requests will now be `appropriately' filed. ;-) )
  245.  
  246.  
  247.  
  248.  
  249.   2.9.  Q: Did you know that there is another package called `dp'?
  250.  
  251.  
  252.   A: Yes, we know.  The dp package was considered very early in the
  253.   development stage quite a few months back.  It is nice.  It supports
  254.   'demand dial'.  It also only works with systems which support streams.
  255.   This is primarily the SunOS (Solaris) operating systems.
  256.  
  257.   Linux, at the present time, does not supports streams.
  258.  
  259.   There are several other packages for PPP available on the `net'. The
  260.   `portable ppp' package is very much like the TIA code. There is
  261.   another package called simply `ppp'. There is code for PPP in the KA9Q
  262.   package.
  263.  
  264.  
  265.   Of all of the packages available, the pppd package was the closest to
  266.   the requirements and functions of Linux to warrant the port.
  267.  
  268.   (If you want more information about these other packages, ask in the
  269.   comp.protocols.ppp group!)
  270.  
  271.  
  272.  
  273.  
  274.   2.10.  Q: What RFCs describe the PPP protocol as implemented for
  275.   Linux?
  276.  
  277.  
  278.   A: The current implementation of PPP is a mixture of several.  The
  279.   major portion of the PPP code is written against the RFCs 1331 and
  280.   1332.  These RFCs were later obsoleted.  1331 was replaced by 1548 and
  281.   that, in turn, was obsoleted by 1661 six months later.
  282.  
  283.   Most implementations of PPP will be happy to talk to the Linux PPP
  284.   code.
  285.  
  286.   A complete list is in the PPP faq.
  287.  
  288.   [to quote the FAQ document]:
  289.  
  290.  
  291.        All of 1134, 1171, and 1172 (and 1055, for that matter :-)
  292.        have been obsoleted.  They're interesting only if you want
  293.        to debug a connection with an ancient PPP implementation,
  294.        and you're wondering why (e.g.)  it asked you for IPCP
  295.        option 2 with a length of only 4, and Compression-Type
  296.        0x0037.
  297.  
  298.  
  299.   (There's a lot of that still running around - be careful out there.)
  300.  
  301.   Linux PPP will not support this.
  302.  
  303.  
  304.  
  305.  
  306.   2.11.  Q: Can PPP talk to a SLIP interface? Can I use SLIP with PPP?
  307.  
  308.  
  309.   A: No. SLIP works with SLIP. PPP works with PPP.
  310.  
  311.   Some vendors may offer products which work both as SLIP and PPP.
  312.   However, they must be configured to run in one mode or the other.
  313.   There is no present method to determine, based upon the protocol
  314.   passed at the time of a connection, which combination of SLIP
  315.   protocols or PPP is being requested.
  316.  
  317.  
  318.  
  319.  
  320.   2.12.  Q: Which is better? PPP or SLIP?
  321.  
  322.  
  323.   A: IT DEPENDS UPON MANY FACTORS.  The people who post this type of
  324.   question have usually not read the Net-2-HOWTO document.
  325.  
  326.   A good technical discussion is available at Morning Star's www server,
  327.   www.morningstar.com.
  328.  
  329.  
  330.  
  331.   2.13.  Q: Which is better? CHAP or PAP authentication?
  332.  
  333.  
  334.   A: If you have the choice, use CHAP.  Failing that, PAP is better than
  335.   nothing.
  336.  
  337.  
  338.  
  339.  
  340.   2.14.  you have a sample?  Q: What goes into the /etc/ppp/pap-secrets
  341.   file? Do
  342.  
  343.  
  344.   A: The pap protocol is most often implemented as your user name and
  345.   password.  You need to include the name of the remote system, your
  346.   account name, and the password.  If the user on abbot wishes to call
  347.   costello, the entry would be similar to the following.
  348.  
  349.  
  350.  
  351.           #remote    account    password     IP address list
  352.           *          abbot      firstbase
  353.  
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360.   2.15.  you have a sample?  Q: What goes into the /etc/ppp/chap-secrets
  361.   file? Do
  362.  
  363.  
  364.   A: The most common problem is that people don't recognize that CHAP
  365.   deals with a pair of secrets.  Both computers involved in the link
  366.   must have both secrets to work.
  367.  
  368.   For example, if abbot wants to talk to costello, then abbot's file
  369.   would have:
  370.  
  371.  
  372.  
  373.           #local      remote         secret        IP address list
  374.           abbot       costello       firstbase
  375.           costello    abbot          who
  376.  
  377.  
  378.  
  379.  
  380.   And costello's file would have:
  381.  
  382.  
  383.  
  384.           #local      remote         secret        IP address list
  385.           abbot       costello       firstbase
  386.           costello    abbot          who
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.   2.16.  includes the ppp.c driver. My kernel is 1.1.8. Now what?  Q: I
  398.   get compile errors when I try to compile the kernel and it
  399.  
  400.  
  401.   A: Did you edit the ppp.c file to reflect the settings for the kernel
  402.   that you are using?  There are two defines which must be set correctly
  403.   if you are going to compile the code for PPP.
  404.  
  405.  
  406.  
  407.           ._____________________.__________________._________________________.
  408.           |                     |                  |                         |
  409.           |  kernel version     |     NET02D       |     NEW_TTY_DRIVERS     |
  410.           |_____________________|__________________|_________________________|
  411.           |                     |                                            |
  412.           |  < 1.0.0            |              UPGRADE!!!                    |
  413.           |_____________________|__________________._________________________|
  414.           |  1.0.0  - 1.0.*     |     defined      |     undefined           |
  415.           |  1.1.0  - 1.1.3     |     defined      |     undefined           |
  416.           |  1.1.4  - 1.1.12    |     undefined    |     undefined           |
  417.           |_____________________|__________________|_________________________|
  418.           |                     |                                            |
  419.           |  1.1.13             |              UPGRADE!!!                    |
  420.           |_____________________|__________________._________________________|
  421.           |                     |                  |                         |
  422.           |  1.1.14 - ... NOTE  |     undefined    |     defined             |
  423.           |_____________________|__________________|_________________________|
  424.  
  425.  
  426.  
  427.  
  428.   The third define near the top of the file is called
  429.   OPTIMIZE_FLAG_TIME.  This may or may not be set with any version of
  430.   the kernel which supports PPP.
  431.  
  432.   Additional information is in the ppp.c file.
  433.  
  434.   NOTE: For kernels from 1.1.14, do not replace the ppp.c file in the
  435.   drivers/net directory nor the ppp.h file in the /usr/include/linux
  436.   directory.  The drivers and the include file are the proper values for
  437.   your kernel.
  438.  
  439.   So, from the above list, you will find that 1.1.8 kernel will need
  440.   NET02D and NEW_TTY_DRIVERS both undefined.  Likewise, the 1.1.18
  441.   kernel will already have things configured for it.  Do nothing
  442.   special.
  443.  
  444.  
  445.  
  446.  
  447.   2.17.  directory'?  Q: What does it mean `unable to create pid file:
  448.   no such file or
  449.  
  450.  
  451.   A: You need to create the directory /var/run.  On earlier Slackware
  452.   distributions, this was a symbolic link to the /etc directory.
  453.  
  454.   This is a warning.  The ppp software will work normally in spite of
  455.   this message.  However, the ppp-off script depends upon this file.  It
  456.   is a good idea to create the directory or make the link to the
  457.   appropriate location.
  458.  
  459.   The posix header, paths.h, defines the location for the pid file under
  460.   the name "_VAR_RUN".  If you wish to use a different directory for PPP
  461.   and others, change the value for this define and rebuild the software.
  462.  
  463.   2.18.  directory'?  Q: What does it mean `/etc/ppp/options: no such
  464.   file or
  465.  
  466.  
  467.   A: You need to create the directory /etc/ppp and have a file called
  468.   'options' in that directory. It needs to be readable by the pppd
  469.   process (root).
  470.  
  471.   The file may be empty.  To make an empty file use the `touch' command.
  472.  
  473.   See the pppd man page for a description of this file.
  474.  
  475.  
  476.  
  477.  
  478.   2.19.  ppp' it says that ``ppp mode is not supported.'' Are there
  479.   plans to use dip with PPP?  Q: The dip program refers to ppp. When I
  480.   try to use `mode
  481.  
  482.  
  483.   A: The dip program controls the establishment of the SLIP link.  Since
  484.   the pppd process must do things at different times than the
  485.   corresponding SLIP link, it is doubtful that there will be a marriage
  486.   of pppd and dip.
  487.  
  488.   The dip program may be used to dial the telephone and start the ppp
  489.   software on the remote system.  It is best used in this mode as the
  490.   parameter to the `connect' option.
  491.  
  492.  
  493.  
  494.  
  495.   2.20.  PPP?  Q: How do I stop the PPP software? Is there a `dip -k'
  496.   for
  497.  
  498.  
  499.   A: No. There is no `dip -k'.
  500.  
  501.   In the chat directory, there is a `ppp-off' script.  This will stop
  502.   the ppp link in the same manner as the 'dip -k'.
  503.  
  504.   I have included it below.  (Cut it out.  Store it in its own file.
  505.   Make the file executable with chmod.)
  506.  
  507.  
  508.  
  509.  
  510.  
  511.  
  512.  
  513.  
  514.  
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.   ______________________________________________________________________
  530.   #!/bin/sh
  531.   DEVICE=ppp0
  532.   #
  533.   # If the ppp0 pid file is present then the program is running. Stop it.
  534.   if [ -r /var/run/$DEVICE.pid ]; then
  535.           kill -INT `cat /var/run/$DEVICE.pid`
  536.   #
  537.   # If the kill did not work then there is no process running for this
  538.   # pid. It may also mean that the lock file will be left. You may wish
  539.   # to delete the lock file at the same time.
  540.           if [! "$?" = "0" ]; then
  541.                   rm -f /var/run/$DEVICE.pid
  542.                   echo 'ERROR: Removed stale pid file'
  543.                   exit 1
  544.           fi
  545.   #
  546.   # Success. Let pppd clean up its own junk.
  547.           echo 'PPP link to $DEVICE terminated.'
  548.           exit 0
  549.   fi
  550.   #
  551.   # The ppp process is not running for ppp0
  552.   echo 'ERROR: PPP link is not active on $DEVICE'
  553.   exit 1
  554.   ______________________________________________________________________
  555.  
  556.  
  557.  
  558.  
  559.  
  560.  
  561.   2.21.  disconnects.  I usually have to stop it so that uugetty will
  562.   work again. What's wrong?  Q: The pppd process does not seem to termi-
  563.   nate when the modem
  564.  
  565.  
  566.   A: There are several reasons for this.
  567.  
  568.  
  569.   o  Did you use the pppd `modem' parameter?  This parameter controls
  570.      whether or not the pppd process is to control and honor the signals
  571.      reflecting the modem status.  This parameter is explained in the
  572.      man page for pppd.
  573.  
  574.   o  Do you have the modem presenting the DCD signal?  The Hayes
  575.      sequence for this is usually "&C1".  If you reset the modem during
  576.      the connection sequence with "ATZ" then ensure that your modem is
  577.      still honoring the DTR signal.  The Hayes sequence for this is
  578.      usually "&D1" or "&D2" with "&D2" being the preferred setting for
  579.      PPP.  Many manufacturers will ignore the DTR condition in their
  580.      `factory defaults' setting.
  581.  
  582.   o  Did you use a cheap cable which does not pass the DCD signal?
  583.      Macintosh `classic' cables are notorious for this problem.  That
  584.      Macintosh does not use this signal.
  585.  
  586.  
  587.  
  588.  
  589.   2.22.  Q: Why can't I run pppd if I am not the root user?
  590.  
  591.  
  592.   A: The pppd process needs to make changes to the networking system and
  593.   this can only be done if you are the root user.  If you wish to run
  594.   pppd from other than the root user then the pppd program needs to be
  595.   secured 'suid to root'.
  596.  
  597.  
  598.  
  599.           chown root pppd
  600.           chmod 4755 pppd
  601.  
  602.  
  603.  
  604.  
  605.   If you wish to control the pppd access to a select group of people,
  606.   then make the pppd process owned by the group and do not permit all
  607.   others to run the program.
  608.  
  609.  
  610.  
  611.  
  612.   2.23.  3 minutes and then the route just goes away. Help!  Q: My route
  613.   to the remote keeps disappearing! It last for about
  614.  
  615.  
  616.   A: This is not a question for PPP.
  617.  
  618.   DON'T RUN routed!
  619.  
  620.  
  621.  
  622.  
  623.   2.24.  Q: I can reach the remote server, but I can not get anywhere
  624.   else.
  625.  
  626.  
  627.   A: Did you forget the `defaultroute' parameter to pppd? This parameter
  628.   adds a default route into your routing system so that frames to all
  629.   other IP addresses will be sent to the PPP device.
  630.  
  631.   The PPP software will not replace the default route if you have one
  632.   already set when you run pppd.  This is done to prevent people from
  633.   destroying their default route to the ethernet routers by accident.  A
  634.   warning message is written to the system log if the defaultroute
  635.   parameter is not performed for this reason.
  636.  
  637.  
  638.  
  639.  
  640.   2.25.  what?  Q: I have a default route and I still can't get anywhere
  641.   else! Now
  642.  
  643.  
  644.   A: The problem then is not with the local Linux system.  It most
  645.   likely is routing problem on the remote end.
  646.  
  647.   The remote computers need a route back to you just as you need a route
  648.   to them.  This may be accomplished by one of four methods.  Each has
  649.   advantages and limitations.  You need to do one and only one of these.
  650.  
  651.  
  652.   o  Use a host route.  At each host on the remote system, add a host
  653.      route to your Linux IP address with the gateway being the terminal
  654.      server that you use for your local access.  This will work if you
  655.      have a small number of host systems and a simple network without
  656.      bridges, routers, gateways, etc.
  657.  
  658.   o  Use a network route.  Subdivide the remote IP addresses so that
  659.      your local Linux IP address and the remote terminal server address
  660.      and the remote terminal server's ethernet address is on the same IP
  661.      domain.  This will work if you have the IP addresses to spare. It
  662.      will work very well if you have a Class-B IP domain and can afford
  663.      to put the all of the remote addresses on the same IP domain.  Then
  664.      add a network route on each of the gateways and routers so that any
  665.      address of the remote network is sent to the terminal server.  Most
  666.      configurations have many hosts but few routers. (At sii.com, we
  667.      have over 300 active host systems with only 3 routers.)
  668.  
  669.   o  Use gated on all of the gateways and on the terminal server.  This
  670.      will cause the terminal server to broadcast to the gateways that it
  671.      can accept the frames for your IP address.  Since the hosts will
  672.      have a default route to one of the gateways, the gateways will
  673.      generate the ICMP re-direct frame and the specific host will
  674.      automatically add its host route.
  675.  
  676.   o  Use proxy ARP on the terminal server.  This will only work if your
  677.      Linux IP address matches the one of the IP domains of the network
  678.      cards.
  679.  
  680.   There is no clear solution.  You must choose one of these.
  681.  
  682.   Another possibility may be that the remote system is not configured
  683.   for `IP forwarding'.  It is an RFC requirement that this option NOT be
  684.   enabled by default.  You must enable the option.  For Linux systems,
  685.   you will need to build the kernel and specify that you want IP
  686.   forwarding/gatewaying.
  687.  
  688.  
  689.  
  690.  
  691.   2.26.  number is always NAKed.  The system will not connect.  Q: I
  692.   keep getting the message to the effect that the magic
  693.  
  694.  
  695.   A: There is a one in over four billion chance that the two systems
  696.   have chosen the same magic number.  If you get a continual failure
  697.   about the magic number, the chances that this is a fluke will
  698.   geometrically reduce.
  699.  
  700.   The two most common reasons for this failure are:
  701.  
  702.  
  703.   o  The modem has disconnected immediately upon making the connection
  704.      and logging you on to the remote.  Most modems are configured to
  705.      echo the data sent to them and you are seeing the local echo from
  706.      the modem.
  707.  
  708.   o  The remote ppp software is not running when you think it is.  Is
  709.      the remote system configured to run PPP? Is the ppp process in the
  710.      expected location?  Is the privileges suitable so that you may run
  711.      it?
  712.  
  713.      This would indicate that the shell is doing the local echo of the
  714.      data.
  715.  
  716.   In either case, the Linux system is sending data to the remote which
  717.   is being fed immediately back into the serial receiver.  This is not
  718.   an acceptable condition.  You have what is called a "loop".
  719.  
  720.  
  721.  
  722.  
  723.   2.27.  terminates with a message "Could not determine local IP
  724.   address".  Q: I am trying to connect to a Telebit Netblazer and it
  725.  
  726.  
  727.   A: The Netblazer does not have your IP address.  You do not have your
  728.   IP address.  The link will not work unless both IP addresses are
  729.   known.
  730.  
  731.   You must have been given a piece of paper with both IP addresses
  732.   written upon it.  You must tell the Netblazer the IP addresses to be
  733.   used.  Use the local IP address and the remote IP address as a
  734.   parameter to the pppd process.
  735.  
  736.   Use the pppd option format of:
  737.  
  738.  
  739.  
  740.           local_ip:remote_ip
  741.  
  742.  
  743.  
  744.  
  745.   (That is the local IP address, a colon, and the remote IP address.)
  746.  
  747.  
  748.  
  749.  
  750.   2.28.  a message "Could not determine remote IP address".  Q: I am
  751.   trying to connect to a Telebit Netblazer and it terminates with
  752.  
  753.  
  754.   A: See the previous question.
  755.  
  756.  
  757.  
  758.  
  759.   2.29.  Q: I can not ping my local IP address
  760.  
  761.  
  762.   A: You are not able to do this because you don't have a route to the
  763.   address.  This is the normal operating environment.  Don't try to ping
  764.   the local IP address.
  765.  
  766.   If you wish to ping your own system then use the loopback address of
  767.   127.0.0.1.
  768.  
  769.   You may be able to ping the remote address.  However, some terminal
  770.   servers may not allow this as the address may be 'phoney' to them.  It
  771.   depends upon their environment.
  772.  
  773.   In general, don't try to ping either address. Choose a third address
  774.   which is well known to be available on the remote network such as the
  775.   nameserver IP address.
  776.  
  777.  
  778.  
  779.  
  780.   2.30.  server?  Q: Can I use the same local IP address for all of the
  781.   lines of my PPP
  782.  
  783.  
  784.   A: Yes. The local address is not significant to the local system.  You
  785.   must have a unique remote IP address.  The routing is performed based
  786.   upon the remote IP address and not the local IP address.
  787.  
  788.  
  789.  
  790.  
  791.  
  792.  
  793.   2.31.  receiving a "protocol reject for protocol fffb". What is this?
  794.   Q: I am using a Xyplex terminal server and pppd complains about
  795.  
  796.  
  797.   A: The Xyplex terminal server does not like a slot number greater than
  798.   two.  Use the option "vj-max-slots 3" to limit the number of slots to
  799.   three.  (The slots start zero. This will limit the maximum slot number
  800.   to the safe value of two.)  Alternately, you can disable the Van
  801.   Jacobson header compression with the option "-vj".
  802.  
  803.  
  804.  
  805.  
  806.   2.32.  connection simply terminates.  Why is this happening?  Q: I am
  807.   using a Trumpet (for MSDOS) and the
  808.  
  809.  
  810.   A: Trumpet does not like any VJ header compression. Use the pppd
  811.   option "-vj" to turn it off.
  812.  
  813.  
  814.  
  815.  
  816.   2.33.  system will not allow me to use anything but ping, or nslookup.
  817.   Why is this happening?  Q: I am using dp-3.1.2 (with SunOS) and the
  818.  
  819.  
  820.   A: There is a bug in the 3.1.2 version of dp. Please get the 3.1.2a or
  821.   later file from the dp ftp home site harbor.ecn.purdue.ecu.  Until you
  822.   can put the patch into dp, disable the vj header compression.
  823.  
  824.  
  825.  
  826.  
  827.   2.34.  operation. They will work correctly if I `get' a file. Why?  Q:
  828.   The ftp transfers seems to die when I do a `put'
  829.  
  830.  
  831.   A: Do you have the flow control enabled? Flow control is set by the
  832.   pppd option crtscts for RTS/CTS and xonxoff for XON/XOFF.  If you
  833.   don't enable the flow control then you will probably overrun the
  834.   modem's buffers and this will prove to be disastrous with vj header
  835.   compression.
  836.  
  837.  
  838.  
  839.  
  840.   2.35.  Q: How do I use XON/XOFF for flow control?
  841.  
  842.  
  843.   A: The better flow control is CTS/RTS. However, if you can not do the
  844.   hardware flow control with the signals CTS and RTS, then use XON/XOFF.
  845.   The following three steps need to be performed.
  846.  
  847.  
  848.   o  You need to specify the pppd option xonxoff. This tells the pppd
  849.      process to configure the serial device for XON/XOFF flow control
  850.      and to load the two characters into the tty driver.
  851.  
  852.   o  You need to specify the XON and XOFF characters in the pppd
  853.      parameter asyncmap. This tells the remote system that is should
  854.      quote the XON and XOFF characters when it wishes to send them to
  855.      you.  It is normally specified as the pppd parameter `asyncmap
  856.      a0000'.
  857.  
  858.  
  859.   o  Of course, don't forget to tell the modem to use XON/XOFF flow
  860.      control.  My ZyXEL modem uses a sequence `&R1&H4' to do this.
  861.  
  862.  
  863.  
  864.  
  865.   2.36.  use minicom, the modem will always use 14400.  However, PPP is
  866.   using 9600 or 7200 or even 2400.  How do I fix this?  Q: The modem
  867.   seems to always connect at a strange rate.  When I
  868.  
  869.  
  870.   A: Put the desired rate as an option to the pppd process.  If you
  871.   don't put the rate, then pppd process will use whatever rate is set
  872.   currently at the time.  Not all programs will restore all of the
  873.   parameters to the previous settings properly upon exit.  This may lead
  874.   to strange rates configured for the serial device.
  875.  
  876.  
  877.  
  878.  
  879.   2.37.  Q: The log shows "Alarm". Is this an urgent message?
  880.  
  881.  
  882.   A: No. It means that a timer has expired and timers are a necessary
  883.   part of the protocol establishment phase.
  884.  
  885.  
  886.  
  887.  
  888.   2.38.  What is this?  Q: The log shows "protocol reject for protocol
  889.   c025".
  890.  
  891.  
  892.   A: The remote wishes to exchange Link Quality Reporting protocol with
  893.   the Linux system.  This protocol is presently not supported.  This is
  894.   not an error.  It is merely saying that it has told the remote that "I
  895.   can't do this now.  Don't bother me with this!"
  896.  
  897.   The Morning Star PPP package will always try to do LQR protocol.  This
  898.   is normal.
  899.  
  900.  
  901.  
  902.  
  903.   2.39.  initialization sequence.  The device never goes 'UP'.  It just
  904.   sends message after message and then finally disconnects.  Now what?
  905.   Q: The PPP software connects but it never seems to complete the
  906.  
  907.  
  908.   A: Examine the system log when you use the "debug" option.  (You will
  909.   need the system log data anyway if you are going to ask for help.)  If
  910.   the trace shows that it is sending the LCP-request frame over and over
  911.   again and the id number is not incrementing then you are not
  912.   exchanging frames with the remote PPP software.
  913.  
  914.   Three common reasons for this are:
  915.  
  916.  
  917.   o  You don't have the ppp software running on the other end.  You are
  918.      sending the PPP frames to some other program which is probably
  919.      saying "What is this #$%^ ?"
  920.  
  921.      Please make sure that you have the ppp software started on the
  922.      other end before you enter the ppp protocol sequence.  Try to use a
  923.      normal modem program and go through the logon sequence that you
  924.      would normally do.  Do you see the ppp frames being sent to you?
  925.      The ppp frames are fairly distinctive.  They will be about 16
  926.      characters in length and contain several { characters.  They should
  927.      not have a carriage return character after them and are sent out in
  928.      a burst with a pause between the bursts.
  929.  
  930.   o  The line is not "eight bit clean".  This means that you need to
  931.      have eight data bits, no parity, and one stop bit.  The PPP link
  932.      absolutely requires eight data bits.
  933.  
  934.      The pppd software will automatically put the line into eight data
  935.      bits, no parity, and one stop bit.  The remote must match this
  936.      configuration or framing and parity errors may occur.
  937.  
  938.      PPP will escape characters.  It is not possible for it to escape
  939.      bits as kermit does.  PPP will not work with a seven bit
  940.      communications link.
  941.  
  942.   o  The remote is configured to require authentication such as PAP or
  943.      CHAP.  You have not configured the local system to use this
  944.      feature.  Therefore, the remote is discarding all of your frames
  945.      until it sees a valid authenticiation frame from you.  Since you
  946.      are not configured to generate the frames, the IPCP frames which
  947.      you send are being ignored.
  948.  
  949.      In this case, either configure the remote to not expect
  950.      authentication or configure the local system to do authenticiation
  951.      and supply the proper secrets.
  952.  
  953.  
  954.  
  955.  
  956.   2.40.  Q: The connection fails with an ioctl(TIOCSCTTY) error.
  957.  
  958.  
  959.   A: Use the ppp-2.1.2b.tar.gz package.  This was a bug which was not
  960.   caught before the `a' package was released.
  961.  
  962.  
  963.  
  964.  
  965.   2.41.  1.0 series kernel to find the hardware address.  Now what?  Q:
  966.   I am trying to use proxyarp.  The proxyarp function fails with the
  967.  
  968.  
  969.   A: Use the ppp-2.1.2b.tar.gz package.  The pppd process was
  970.   erroneously compiled with the 1.1.8 kernel and it used Net-3 rather
  971.   than Net-2 definitions.
  972.  
  973.  
  974.  
  975.  
  976.   2.42.  package and it says that it needs the 4.6 version of the
  977.   libraries! Now what?  Q: Ok, #%@& ! I did get the ppp-2.1.2b
  978.  
  979.  
  980.   A: Sorry, I goofed. You will have to forego the binaries and re-
  981.   compile the code yourself.  It is easy.  Go to the pppd directory,
  982.   delete the bad binary, and issue the command `make'.  Go to the chat
  983.   directory and do the same if you want a corrected chat program.
  984.  
  985.   It turns out that when I compiled the ppp-2.1.2b package, while I used
  986.   the proper definitions, I used the 4.6 libraries.  One of these days,
  987.   Al may finally get his act together . . . .
  988.  
  989.   Or, you can get binaries from the Slackware 2.0.2 (or later) package.
  990.   They are in the ppp.tgz file in the `n' series of disks.
  991.   Please use the source in the ppp-2.1.2b to compile the code.  The
  992.   source has been corrected over the `a' package.
  993.  
  994.  
  995.  
  996.  
  997.   2.43.  error" or "ioctl(PPPIOCSINPSIG): I/O error". What now?  Q: The
  998.   connection fails with errors "ioctl(TIOCGETD): I/O
  999.  
  1000.  
  1001.   A: Look at the boot messages when you boot the kernel.  If it says
  1002.   "PPP version 0.1.2" then you have an old version of the ppp.c driver.
  1003.  
  1004.   If it says "PPP version 0.2.7" then you have the current driver,
  1005.   however, it was not built with the same set of defines for the ioctl
  1006.   numbers.  Ensure that you have only one file called "ppp.h".  It
  1007.   should be located in the kernel's include/linux directory.  Once you
  1008.   have done this, rebuild the kernel and the pppd process.
  1009.  
  1010.  
  1011.  
  1012.  
  1013.   2.44.  "ioctl(TIOCSETD): I/O error" and "ioctl(TIOCNXCL): I/O error"
  1014.   occur. Why?  Q: Sometimes the messages "ioctl(PPPIOCGDEBUG): I/O
  1015.   error",
  1016.  
  1017.  
  1018.   A: The remote system has disconnected the telephone.  The tty drivers
  1019.   will re-establish the proper tty discipline and these errors are the
  1020.   result of the pppd process trying to do the same thing.  These are to
  1021.   be expected.
  1022.  
  1023.  
  1024.  
  1025.  
  1026.   2.45.  Q: I am trying to use the merit network.  Why does this not
  1027.   connect?
  1028.  
  1029.  
  1030.   A: Some users of the merit network have indicated that it needs PAP.
  1031.   Did you try PAP authentication?
  1032.  
  1033.  
  1034.  
  1035.  
  1036.   2.46.  following.  It may report the ppp device as "unknown" and show
  1037.   a strange hardware address.  Is this important?  Q: My ifconfig says
  1038.   something other than the
  1039.  
  1040.  
  1041.  
  1042.  
  1043.           ppp0      Link encap Point-to-Point Protocol
  1044.                     inet addr 192.76.32.2  P-t-P 129.67.1.165  Mask 255.255.255.0
  1045.  
  1046.  
  1047.  
  1048.  
  1049.   A: No. The information is for display purposes only.  If you are using
  1050.   a recent 1.1 kernel then update the nettools package with the current
  1051.   one on sunacm.swan.ac.uk in the directory
  1052.   /pub/Linux/networking/nettools.
  1053.  
  1054.  
  1055.  
  1056.  
  1057.   2.47.  ifconfig and route and it still won't work!  What am I doing
  1058.   wrong?  It says to do this in the Net-2-HOWTO.  Q: My system will not
  1059.   work.  I use slattach and
  1060.  
  1061.  
  1062.   A: Do not use slattach and ifconfig with PPP.  These are used for
  1063.   SLIP. The pppd process does these functions at the appropriate time.
  1064.   These must occur after the LCP and IPCP protocols have been exchanged.
  1065.  
  1066.   You can not replace pppd with slattach and ifconfig.  Most of the
  1067.   protocol support for PPP is in the pppd process.  Only the IP (and IPX
  1068.   when it is completed) processing is in the kernel.
  1069.  
  1070.   The host route to the remote system will be automatically added by
  1071.   pppd.  There is no option to NOT add the route.  The pppd process will
  1072.   terminate if the route could not be added.
  1073.  
  1074.   The default route may or may not be added.  This is controlled by the
  1075.   option `defaultroute'.  If you have a default route, it will not be
  1076.   changed.
  1077.  
  1078.   If you must do routing for an entire network, then put the route
  1079.   command into the /etc/ppp/ip-up script. The parameters to the script
  1080.   are:
  1081.  
  1082.  
  1083.  
  1084.           $0 - name of the script (/etc/ppp/ip-up or /etc/ppp/ip-down)
  1085.           $1 - name of the network device (such as ppp0)
  1086.           $2 - name of the tty device (such as /dev/cua0)
  1087.           $3 - speed of the tty device in Bits Per Second (such as 38400)
  1088.           $4 - the local IP address in dotted decimal notation
  1089.           $5 - the remote IP address in dotted decimal notation
  1090.  
  1091.  
  1092.  
  1093.  
  1094.  
  1095.  
  1096.  
  1097.   2.48.  network and not the route to the host.  How is that accom-
  1098.   plished?  Q: Ok.  Now I have the parameters.  However, I want the
  1099.   route to the
  1100.  
  1101.  
  1102.   A: On sunsite there is a package called devinfo.tar.gz.  It contains
  1103.   some useful little programs which will extract the data from the
  1104.   device and to do various things with the dotted IP addresses.
  1105.  
  1106.   The documentation is in the man pages in the file.
  1107.  
  1108.   For example, if you want to route the entire IP domain to the remote,
  1109.   the following may be used in /etc/ppp/ip-up.
  1110.  
  1111.   Of course, if the values are not variable, then simply use the
  1112.   appropriate entry in the route command.
  1113.  
  1114.  
  1115.  
  1116.  
  1117.  
  1118.  
  1119.  
  1120.  
  1121.  
  1122.  
  1123.   ______________________________________________________________________
  1124.   # Obtain the netmask for the ppp0 (or whatever) device
  1125.   NETMASK = `devinfo -d $1 -t mask`
  1126.  
  1127.   # Obtain the IP domain (without the host address by removing the extra bits)
  1128.   DOMAIN = `netmath -a $5 $NETMASK`
  1129.  
  1130.   # Do the network route now that the IP domain is known
  1131.   route -net add $DOMAIN gw $5
  1132.   ______________________________________________________________________
  1133.  
  1134.  
  1135.  
  1136.  
  1137.  
  1138.   2.49.  an absolute must for me!  Q: When are you going to support
  1139.   `demand dial'?  It is
  1140.  
  1141.  
  1142.   A: Use the diald package. This is on sunsite in the same directory as
  1143.   the ppp source, /pub/Linux/system/Network/serial.
  1144.  
  1145.  
  1146.  
  1147.  
  1148.  
  1149.   2.50.  Q: How about filtering? When are you going to do that?
  1150.  
  1151.  
  1152.   A: There are no plans to put filtering into the PPP code.  Run the
  1153.   ipfirewall code.  It is on sunsite.  Help the author debug that code.
  1154.   It will do the filtering that you want in a general solution.
  1155.  
  1156.  
  1157.   The latest development kernels will include the patches to support
  1158.   filtering.  Again, filtering is a network issue and not one
  1159.   specifically for PPP.
  1160.  
  1161.  
  1162.  
  1163.  
  1164.  
  1165.   2.51.  Q: How about IPX?
  1166.  
  1167.  
  1168.   A: The addition of support for IPX is fairly straight forward.  I
  1169.   started to work on it for someone who asked me over IRC.  I must read
  1170.   more of the Novell manuals to understand what the proper values are
  1171.   for the routing functions that IPXCP needs.  (IPXCP is the control
  1172.   protocol for IPX.)
  1173.  
  1174.  
  1175.  
  1176.  
  1177.   2.52.  Q: How about NETBIOS?
  1178.  
  1179.  
  1180.   A: There is a netbios PPP protocol.  However, your better solution
  1181.   would be to use TCP/IP and the `samba' code.
  1182.  
  1183.   Microsoft and others have used Netbios PPP protocol.  This is usually
  1184.   a proprietary mixture and one vendor is not guaranteed to work with
  1185.   another.
  1186.  
  1187.   I'll leave the Netbios protocols for someone else.
  1188.  
  1189.   2.53.  documentation and it was empty? Why?  Q: I just looked at the
  1190.   /proc/net/dev file mentioned in the
  1191.  
  1192.  
  1193.   A: Did you just issue the command "ls -l /proc/net" and are wondering
  1194.   why the size is zero?  If so, this is normal.  Instead, issue the
  1195.   command:
  1196.  
  1197.  
  1198.  
  1199.           cat /proc/net/dev
  1200.  
  1201.  
  1202.  
  1203.  
  1204.   You should not find the file empty.  The size is always shown as zero,
  1205.   but that is the 'proc' file system.  Don't believe the size.  Do the
  1206.   command.
  1207.  
  1208.  
  1209.  
  1210.  
  1211.   2.54.  using Microsoft's PPP.  Why not?  Q: I can not connect to/with
  1212.   my Windows NT code (a.k.a. 'Daytona')
  1213.  
  1214.  
  1215.   The Microsoft PPP is sending an authentication type of 0xC207.  Normal
  1216.   PAP is 0xC203.
  1217.  
  1218.   A: Microsoft has chosen to support a non-standard authentication
  1219.   protocol with Windows NT.  That is their right to do so provided that
  1220.   they have registered the protocol number with the IANA.  (They have.)
  1221.   If the ``accept only Microsoft encrypted authentication'' check box is
  1222.   set in the phone book entry, the connection will not complete.  This
  1223.   setting mandates that the Daytona system only exchange PPP
  1224.   authentication with another Microsoft PPP implementation.
  1225.  
  1226.   Linux does not support this authentication protocol.
  1227.  
  1228.   If you have the option of changing the settings on the Daytona system
  1229.   then go to the Daytona Phone Book settings, advanced, security
  1230.   settings and choose either ``Accept any authentication including clear
  1231.   text'' to allow execution without authentication, or ``Use clear text
  1232.   terminal login only'' for PAP authentication, or ``Accept only
  1233.   encrypted authentication'' to allow CHAP authentication.
  1234.  
  1235.   The Microsoft authentication sequence is a PAP style authentication
  1236.   with their encryption algorithm for the passwords.  Normal PAP sends
  1237.   the passwords in clear text.  This would violate their C2 security
  1238.   goals.
  1239.  
  1240.  
  1241.  
  1242.  
  1243.   2.55.  Q: Do you have a PPP compatible mail reader?  How about a news
  1244.   reader?
  1245.  
  1246.  
  1247.   A: Huh?  You have the wrong group if you want MSDOS.  PPP has nothing
  1248.   to do with the mail user agent.  All of the mail agents are compatible
  1249.   with PPP.
  1250.